// let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// // 随机打乱数组---生成随机数索引，push到新数组中，删除原数组，再次进行随机

// let newArr = []
// while (arr.length) {
//   let random = Math.floor(Math.random() * arr.length)
//   newArr.push(arr[random])
//   arr.splice(random, 1)
// }
// console.log(newArr)


//实现数组的push的方法---push从数组的最后面推入，返回数组的新长度,并改变原数组
let arr = [1, 3, 3]
// arr.push(2, 3)
// console.log(arr)

Array.prototype._push = function (...others) {
  // let newArr = (this.join('') + val).split('')
  // newArr = newArr.map(function (item) {
  //   return +item
  // })
  // return newArr.length    //效果是实现了，但是并没有改变原数组，this不可以重新赋值
  //不改变原本的this的指向的时候，只有添加和删除数据的方法
  for (let i = 0; i < others.length; i++) {
    this[this.length] = others[i]
  }
  return this.length
}

arr._push(2, 23)

// console.log(arr)

